#include <cstdio>
#include <vector>
using namespace std;
#define MAX 100001
vector<int> T[MAX];
int pre[MAX], post[MAX];
void dfs_order(int node, int &order1, int &order2) {
	pre[node]=order1++;
	for(int i=0;i<T[node].size();i++)
		dfs_order(T[node][i],order1,order2);
	post[node]=order2++;
}
int main() {
	int t,n,a,b,m;
	scanf("%d",&t);
	while(t--) {
		scanf("%d",&n);
		for(int i=0;i<n-1;i++) {
			scanf("%d %d",&a,&b);
			T[b].push_back(a);
		}
		scanf("%d",&m);
		int ord1=0,ord2=0;
		dfs_order(0,ord1,ord2);
		for(int i=0;i<m;i++) {
			scanf("%d %d",&a,&b);
			if(pre[a]<pre[b]&&post[a]>post[b]) printf("Yes\n");
			else printf("No\n");
		}
		printf("\n");
		for(int i=0;i<n;i++)
			T[i].clear();
	}
	return 0;
}
